package com.atguigu.day20.syn01.smethod1;


/*
线程安全问题: 多个线程操作共享数据  既有写也有读 数据前后不一致
       案例:  张三线程  翠花线程   共享一个账户 2000元 都取钱1500元
解决线程安全问题:
        思路:操作共享数据时只有一个线程
      同步代码块:
             synchronized(同步锁/同步监视器对象){

             }
      注意:
          1.  同步锁 必须是对象
          2.  锁对象相同才会有互斥效果
               一个线程进入了同步代码块 其他线程无法进入使用同一把锁的其他同步代码块
      同步方法: 返回值前+ synchronized
           普通同步方法锁对象: this
           静态同步方法锁对象: 类名.class  获取运行时类 对象 唯一的

         public synchronized void aa(){}
         public static synchronized void aa(){}

 */
public class Test {

    public static void main(String[] args) {

        //todo 公共的账户
        Account account = new Account();

        ZsThread zs = new ZsThread(account);

        ChThread ch = new ChThread();

        ch.setAccount(account);
        zs.setName("张三");
        ch.setName("翠花");
        zs.start();
        ch.start();

    }
}
